package com.xy.biz.fd.domain.bo;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;
import java.util.Collection;
import java.util.Objects;

/**
 *
 *
 * @author ssl
 * @date 2021-1-16
 */
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Data
public class DocumentBO {

    /**
     * 文档Id
     */
    private Long documentId;
    /**
     * 文档名称
     */
    private String documentName;
    /**
     * 文档编号
     */
    private String documentCode;
    /**
     * 文档类型：0-未定义，1-文档，2-表格，3-演示稿，4-图片，5-音频，6-视频
     */
    private Integer documentType;
    /**
     * 文件夹Id
     */
    private Long folderId;
    /**
     * 知识库Id
     */
    private Long repositoryId;
    /**
     * 状态：0-未发布，1-已发布，2-未更新，4-已更新
     */
    private Integer status;
    /**
     * 文件扩展名
     */
    private String fileExtension;
    /**
     * 文件大小，单位字节
     */
    private Long fileSize;
    /**
     * 统一文件大小前台返回字段
     */
    private String size;
    /**
     * 文档版本
     */
    private String version;
    /**
     * 线索Id，用于串联文档的各版本
     */
    private Long threadId;
    /**
     * MinIO文件路径
     */
    private String path;
    /**
     * 文件路径，用于显示文件所在目录
     */
    private String location;
    /**
     * 文件等级：0-普通文件，1-一级文件，2-二级文件，3-三级文件，4-四级文件
     */
    private Integer level;
    /**
     * 是否是最新版本：0-是最新版本，1-不是最新版本
     */
    private Integer latestVersionFlag;
    /**
     * 文档发行评论
     */
    private String versionComment;
    /**
     * 租户Id，0表示不指定
     */
    private Long tenantId;
    /**
     * 最近访问时间
     */
    private LocalDateTime accessTime;
    /**
     * 访问时间(几分钟前)
     */
    private String accessTimeString;
    /**
     * 创建人Id
     */
    private Long createUserId;
    /**
     * 创建人名称
     */
    private String createdName;
    /**
     * 创建时间
     */
    private LocalDateTime createTime;
    /**
     * 更新时间
     */
    private LocalDateTime updateTime;
    /**
     * 流程锁标识：0-解锁，1-锁定
     */
    private Boolean documentFlowLock;
    /**
     * 删除标识：0-正常，1-删除
     */
    private Boolean deleteFlag;
    /**
     * 权限
     */
    private Integer permission;
    /**
     * 收藏id
     */
    private Long documentFavoriteId;


    private String mode;

    private String type;

    private String actionLink;

    private String minObjectName;

    /**
     * 知识库Id多条
     */
    private Collection<Long> repositoryIds;

    /**
     * 多条文档Id
     */
    private Collection<Long> documentIds;
}
